Crate nu_plugin_protocol
source ·Expand description
Type definitions, including full Serialize
and Deserialize
implementations, for the protocol
used for communication between the engine and a plugin.
See the plugin protocol reference for more details on what exactly is being specified here.
Plugins accept messages of PluginInput
and send messages back of PluginOutput
. This
crate explicitly avoids implementing any functionality that depends on I/O, so the exact
byte-level encoding scheme is not implemented here. See the protocol ref or nu_plugin_core
for
more details on how that works.
Structs§
- Information about a plugin command invocation. This includes an
EvaluatedCall
as a serializable representation ofnu_protocol::ast::Call
. The type parameter determines the input type. - A representation of the plugin’s invocation command including command line args
- Additional information about external streams
- Additional information about list (value) streams
- An opaque container for a custom value that is handled fully by a plugin.
- Protocol information, sent as a
Hello
message on initialization. This determines the compatibility of the plugin and engine. They are considered to be compatible if the lower version is semver compatible with the higher one. - Additional information about raw (byte) streams
Enums§
- Operations supported for custom values.
- A remote call back to the engine during the plugin’s execution.
- The response to an
EngineCall
. The type parameter determines the output type for pipeline data. - Indicates optional protocol features. This can help to make non-breaking-change additions to the protocol. Features are not restricted to plain strings and can contain additional configuration data.
- This is just a serializable version of
std::cmp::Ordering
, and can be converted 1:1 - The initial (and perhaps only) part of any
nu_protocol::PipelineData
sent over the wire. - Calls that a plugin can execute. The type parameter determines the input type.
- Response to a
PluginCall
. The type parameter determines the output type for pipeline data. - Any data sent to the plugin
- Options that can be changed to affect how the engine treats the plugin
- Information received from the plugin
- Indicates the protocol in use. Only one protocol is supported.
- A single item of stream data for a stream.
- A stream control or data message.
Type Aliases§
- A sequential identifier for an
EngineCall
- A sequential identifier for a
PluginCall
- A sequential identifier for a stream